import axios from 'axios'
import { Notify, Toast } from 'vant'
import router from '../router'

export function request (config) {
  // 创建一个实例
  const instance = axios.create({
    baseURL: 'https://api.shop.eduwork.cn',
    // timeout: '6000'
  })

  // 请求拦截
  instance.interceptors.request.use(config => {
    // 如果有接口需要认证才允许访问，就在这里统一设置
    const token = window.localStorage.getItem('token')
    if (token) {
      config.headers.Authorization = 'Bearer ' + token
    }

    // 放行
    return config
  })
  // 响应拦截
  instance.interceptors.response.use(res => {
    // 处理返回请求成功的相响应数据
    return res.data ? res.data : res
  }, err => {
    // 如果有错误信息，这里面会去处理，显示错误信息
    // 如果需要授权才可以访问的接口，统一去登录授权
    // console.log(err.response.statusText);

    // 登录错误的情况
    if(err.response.data.status_code === 401 && err.response.data.message === 'Unauthorized') {  
      return Notify('邮箱或密码错误！')
    }

    // 权限授予，当访问购物车或我的时，如果没有登录，就要先登录
    if (err.response.status === 401) {
      Toast.fail('请先登录')
      setTimeout(() => {
        router.push('/login')
      },1000)
    }

    // console.log(err.response.data.errors[Object.keys(err.response.data.errors)[0]][0]);
    Notify(err.response.data.errors[Object.keys(err.response.data.errors)[0]][0])

  })

  return instance(config)
}
